/*********************************************************
 *
 * Filename: misc/led/cm_led.h
 *   Author: jmdvirus
 *   Create: 2019年01月02日 星期三 19时54分49秒
 *
 *********************************************************/

#ifndef JKLIBS_CM_LED_H
#define JKLIBS_CM_LED_H

#include <stdio.h>

#ifdef __cplusplus
extern "C" {
#endif

#define WITH_LED_NORMAL

typedef struct CMLedContext
{

    void *priv_data;
} CMLedContext;

typedef struct CMLedImpl
{
    char name[512];
    int (*open)(struct CMLedContext* ctx, const char *dev);
    int (*close)(struct CMLedContext *ctx);

    int (*on)(struct CMLedContext *ctx);
    int (*off)(struct CMLedContext *ctx);
    int (*blink)(struct CMLedContext *ctx, int on_duration, int off_duration);

} CMLedImpl;

// 这里声明将要支持的设备类型的实现对象
#ifdef WITH_LED_NORMAL
extern const CMLedImpl cm_led_impl_normal;
#endif

#ifdef __cplusplus
};
#endif

#endif
